<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets">


    <ui:composition template="/publico/templates/principal.xhtml">

        <ui:define name="titulo">
            #{msgs.PageTitle}
        </ui:define>


        <ui:define name="corpo">

            <h:form>

                <p:panelGrid columns="2" style=" width: 770px;" id="panel"  >

                    <f:facet name="header">
                        Cadastro de Usuarios
                    </f:facet>

                    <p:outputLabel value="Nome:" for="nome"/>
                    <p:inputText id="nome" value="#{usuarioBean.usuario.nome}" title="Nome" style=" width: 450px" 
                                 required="true" requiredMessage="Informe o Nome !" />



                    <p:outputLabel value="Email:" for="email" />
                    <p:inputText id="email" value="#{usuarioBean.usuario.email}" title="Email" style=" width: 450px" 
                                 required="true" requiredMessage="Informe o Email !"  
                                 validatorMessage="Informe um email válido">
                        <f:validateRegex pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
                    </p:inputText> 



                    <p:outputLabel value="Login:" for="login" />
                    <p:inputText id="login"  value="#{usuarioBean.usuario.login}" title="Login" style=" width: 250px"
                                 required="true" requiredMessage="Informe o Login !" />


                    <p:outputLabel value="Senha:" for="senha" />


                    <p:password id="senha" value="#{usuarioBean.usuario.senha}" feedback="true" redisplay="true" 
                                promptLabel="Por favor, digite uma senha" weakLabel="Fraco"  
                                required="true" requiredMessage="Informe a senha !" 
                                goodLabel="de Nivel Medio" strongLabel="Forte" title="Senha" style=" width: 150px" /> 

                    <p:outputLabel value="Nascimento:" for="nascimento" />
                    <p:calendar locale="pt_BR" value="#{usuarioBean.usuario.nascimento}" id="nascimento" showOn="button" pattern="dd/MM/yyyy" style=" width: 150px"
                                required="true" requiredMessage="Informe o Nascimento !" /> 

                    <p:outputLabel value="Celular:" for="celular" />
                    <p:inputMask id="celular" value="#{usuarioBean.usuario.celular}" mask="(99) 9999-9999" title="Celular" style=" width: 150px"
                                 required="true" requiredMessage="Informe o Celular !" /> 

                    <p:outputLabel value="Ativo: " />  
                    <p:selectOneRadio id="options" value="#{usuarioBean.usuario.ativo}">  
                        <f:selectItem itemLabel="Sim" itemValue="TRUE" />  
                        <f:selectItem itemLabel="Não" itemValue="FALSE" />  
                    </p:selectOneRadio>
              
                    
                         <p:outputLabel value="Permissão: " />  
                         <p:selectOneRadio id="permisao" value="#{usuarioBean.usuario.permissao}" >  
                        <f:selectItem itemLabel="Administrador" itemValue="ROLE_ADMINISTRADOR" />  
                        <f:selectItem itemLabel="Usuário" itemValue="ROLE_USER" />  
                    </p:selectOneRadio>

                    <f:facet name="footer"> 

                        <p:commandButton action="#{usuarioBean.prepararAdicionarUsuario()}" ajax="false" value="Novo" update="tabela" 
                                         icon="ui-icon-document" style="margin:0"/> 

                        <p:commandButton action="#{usuarioBean.adicionarUsuario()}" ajax="false" value="Gravar" update="tabela" 
                                         icon="ui-icon-disk" style="margin:0"/> 


                    </f:facet> 

                </p:panelGrid>
                <!--  Componentes invisiveis-->
                <p:inputText id="codigo" value="#{usuarioBean.usuario.codigo}" title="Codigo" style=" display: none" />
            </h:form>

            <h:form prependId="false">
                <p:dataTable value="#{usuarioBean.listarUsuarios}" var="usuario" rowKey="#{usuario.codigo}"  
                             selectionMode="single" style="height: 390px; width: 770px;" id="tabela" paginator="true" rows="10">

                    <p:column id = "dtcodigo" filterBy="codigo" 
                              headerText="Codigo">
                        <h:outputText value="#{usuario.codigo}" />
                    </p:column>

                    <p:column id = "dtnome" filterBy="nome" 
                              headerText="Nome">
                        <h:outputText value="#{usuario.nome}" />
                    </p:column>

                    <p:column id ="dtlogin" filterBy="login" 
                              headerText="Login">
                        <h:outputText value="#{usuario.login}" />
                    </p:column>

                    <p:column id ="dtemail" filterBy="email" 
                              headerText="E-Mail">
                        <h:outputText value="#{usuario.email}"/>
                    </p:column>

                    <p:column headerText="Ações"> 
                        <h:commandLink action="#{usuarioBean.prepararAlterarUsuario()}">
                            <h:graphicImage library="imagens" name="editar16.png"/>
                            <f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}"/>
                        </h:commandLink>
                        <h:commandLink action="#{usuarioBean.excluirUsuario()}"
                                       onclick="if (!confirm('Confirma a exclusão do usuario #{usuario.nome}?'))
                                                   return false;">
                            <h:graphicImage library="imagens" name="excluir16.png" />
                            <f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}"/>
                        </h:commandLink>

                    </p:column>
                </p:dataTable>

            </h:form> 

        </ui:define>
    </ui:composition>
</html>

